package DAO;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.sun.org.apache.bcel.internal.generic.GETSTATIC;

import modelo.AcessoBD;
import modelo.Empresa;
import modelo.Funcionario;

public class EmpresaImplementsDAO implements EmpresaDAO{
	
	public void cadastrarEmpresa(	String nmNomeEmpresa,
									int nmCNPJ,
									String nmEndereco,
									String nmNumero,
									String nmComplemento,
									int nmTelefone,
									String nmEmail	){	
								
		AcessoBD bd = new AcessoBD();
		Connection con = null;
		PreparedStatement stmt = null;
		
		try {
			String sql = "insert into empresa values (?,?,?,?,?,?,?)";
			
			con = bd.obtemConexao();
			stmt = con.prepareStatement(sql);
			
			stmt.setInt(1, nmCNPJ);
			stmt.setString(2, nmNomeEmpresa);
			stmt.setString(3, nmEndereco);
			stmt.setString(4, nmNumero);
			stmt.setString(5, nmComplemento);
			stmt.setInt(6, nmTelefone);
			stmt.setString(7, nmEmail);
			
			stmt.execute();
			
		} catch (SQLException sq) {
			sq.printStackTrace();

		} finally {
			// IMPORTANTE UTILIZACAO DO FINALLY PARA GARANTIR O FECHAMENTO
			// DA CONEXAO COM O BANCO DE DADOS.
			bd.CloseAll(stmt, con);
		} //fim try
	}
	
	public void editarEmpresa(){
		
	}
	
	public List<Empresa> consultarEmpresa(){
		
		AcessoBD bd = new AcessoBD();
		Connection con = null;
		PreparedStatement stmt = null;		
		ResultSet rs = null;
		
		List<Empresa> resultado = new ArrayList<Empresa>();
		
		try{
			String sql = "select * from empresa ";
			
			con = bd.obtemConexao();
			stmt = con.prepareStatement(sql);
			
			rs = stmt.executeQuery();
			
			while(rs.next()) {
				Empresa empresa = new Empresa();
					empresa.setNmCNPJ(rs.getInt("nmCNPJ"));
					empresa.setNmNomeEmpresa(rs.getString("nmNomeEmpresa"));
					empresa.setNmEndereco(rs.getString("nmEndereco"));
					empresa.setNmNumero(rs.getString("nmNumero"));
					empresa.setNmComplemento(rs.getString("nmComplemento"));
					empresa.setNmTelefone(rs.getInt("nmTelefone"));
					empresa.setNmEmail(rs.getString("nmEmail"));
					
					resultado.add(empresa);
			}
			return resultado;
			
		}catch (SQLException sq) {
			sq.printStackTrace();
			return new ArrayList<Empresa>();

		} finally {
			// IMPORTANTE UTILIZACAO DO FINALLY PARA GARANTIR O FECHAMENTO
			// DA CONEXAO COM O BANCO DE DADOS.
			bd.CloseAll(stmt, con, rs);
		}
	}
}